package com.insurance.domain.entity;

import java.util.Collection;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.security.core.GrantedAuthority;

/**
 * (User)表实体类
 *
 * @author makejava
 * @since 2023-03-28 15:16:22
 */
@SuppressWarnings("serial")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_user")
public class User {
    //用户编号
    @TableId
    private Long id;
    //登录名称(用户名)
    private String username;
    //登录密码
    private String password;
    //真实姓名
    private String realName;
    //性别(0-男，1-女)
    private Integer gender;
    //客户年龄
    private Integer age;
    //客户婚约状况
    private String maristaus;
    //客户国家
    private String country;
    //电话
    private String phone;
    //客户出生地
    private String birthPlace;
    //客户通讯地址
    private String address;
    //客户描述
    private String description;
    //用户类型：0代表普通用户，1代表管理员
    private Integer type;
    //帐户是否过期(1-未过期，0-已过期)
    private Integer isAccountNonExpired;
    //帐户是否被锁定(1-未过期，0-已过期)
    private Integer isAccountNonLocked;
    //密码是否过期(1-未过期，0-已过期)
    private Integer isCredentialsNonExpired;
    //帐户是否可用(1-可用，0-禁用)
    private Integer isEnabled;
    //昵称
    private String nickName;
    //所属部门ID
    private Long departmentId;
    //所属部门名称
    private String departmentName;
    //邮箱
    private String email;
    //用户头像
    private String avatar;
    //是否是管理员(1-管理员)
    private Integer isAdmin;
    //创建时间
    private Date createTime;
    //修改时间
    private Date updateTime;
    //是否删除(0-未删除，1-已删除)
    private Integer isDelete;

    /**
     * 权限列表
     */
    @TableField(exist = false)
    Collection<? extends GrantedAuthority> authorities;
    /**
     * 查询用户权限列表
     */
    @TableField(exist = false)
    private List<Permission> permissionList;

}

